// domain/ScoringRule.ts

/**
 * 积分规则类
 * 定义各种考核项目的积分规则和限制
 */
export class ScoringRule {
    public id: number;
    // public rules: any;
    /**
     * 创建积分规则实例
     * @param category 分类，如"保荐门人和弟子"、"组内职务"等
     * @param item 考核项目名称
     * @param description 考核规则描述
     * @param rules 具体规则配置对象，包含分数范围和限制等信息
     */
    constructor(
      public category: string,
      public item: string,
      public description: string,
      public rules: any = {
        leader: {
          minScore: 0,
          maxScore: 0,
          defaultScore: 0,
          topScore: 0,
        }, 
        master: {
          minScore: 0,
          maxScore: 0,
          defaultScore: 0,
          topScore: 0,
        },
        // 是否为山长加分（0），或者师门加分（1），如果都有，则为（2）
        isMasterScore: 2,        
      }
    ) {
      this.id = Date.now();
    }

    /**
     * 静态规则分类列表
     */
    static categories: string[] = [
      "保荐门人和弟子",
      "组内职务",
      "小组活动",
      "组织管理类",
      "对外公开活动"
    ];
  }